Computers can be organized into a network, for example, a client-server network or a peer-to-peer network. In both types of networks, the computers exchange data with one-another over physical and/or wireless connections. Data transmitted over a physical connection (e.g., by interconnecting copper wires or fiber optic cables) has a lower error rate than data transmitted over a wireless connection (e.g., by radio or infrared waves). For example, physical connections generally have BERs (bit error rates) of less than 10−3, while wireless connections have much harsher conditions on the order of 10−1 to 10−3 BERs
Multimedia is one of the types of data that can be transmitted over a network. Multimedia refers to text, graphics, voice, or video. In order to use bandwidth more efficiently, multimedia is compressed into a bitstream when transmitted over a network. Generally, video (which is a type of multimedia) uses compression algorithms with predictive coding of frames and variable length codewords. This is used to obtain high degrees of compression. However, the compressed video bitstream also becomes more sensitive to errors in transmission, as predictive coding causes errors in the reconstruction of video to propagate in time to future frames of video. Also, the use of variable-length code words can cause the decoder to lose synchronization with the encoder in the presence of bit errors. To make the bitstream more robust for transmission over networks, error protection is added to different parts of the video stream.
One way of transmitting video is with MPEG (Moving Pictures Experts Group). The MPEG format compresses video into a bitstream, which is composed of video packets, by predicting motion from frame to frame in the temporal direction, and then using DCTs (Discrete Cosine Transform) to organize any redundances in the spatial directions. The video packets begin with a header, which is followed by motion information, texture information, and stuffing bits. MPEG partitions video into I, P or B frames (Intra, Predicted, or Bidirectional frames). The I-frames are intra coded: they can be reconstructed without any reference to other frames. The P-frames are forward predicted from the last I-frame or P-frame. The B-frames are both, forward predicted and backward predicted from the last/next I-frame or P-frame. An object present in an I frame is predicted in a P or B frame by a motion vector. In MPEG, motion vectors have a horizontal and vertical component, which show the magnitude and direction of motion for the object from the I frame to the P or B frame.
To make the compressed video stream more robust to errors that arise during transmission, several error correction tools to enable detection, containment, and concealment of errors are used. Such tools include resynchronization makers, header extension codes, data partitioning, and variable length coding. MPEG based video can be protected during transmission by partitioning the video into portions of varying importance, such as headers, motion vectors, and DCT values. Error correcting codes, such as Reed-Solomon Erasure codes or feedback-based protection schemes (e.g., Type I or II hybrid ARQ) can also be added to the video portions to improve robustness. However, since the strength of the error protection is based solely on the data partition type, these error protection methods ignore the data actually contained in the data streams. This results in increased overhead for coding non-important portions of the video streams.